// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

// values used by math functions -- IEEE 754 long version

#if defined(_M_CEE_PURE)
#if defined(MRTDLL)
#undef MRTDLL
#endif
#endif

#include "xmath.hpp"
// macros -- 64-bit
#define NBITS (48 + _DOFF)

#define INIT(w0)      {0, 0, 0, w0}
#define INIT2(w0, w1) {w1, 0, 0, w0}

// static data
extern /* const */ _Dconst _LDenorm = {INIT2(0, 1)};
extern const _Dconst _LEps          = {INIT((_DBIAS - NBITS - 1) << _DOFF)};
extern /* const */ _Dconst _LInf    = {INIT(_DMAX << _DOFF)};
extern /* const */ _Dconst _LNan    = {INIT((_DMAX << _DOFF) | (1 << (_DOFF - 1)))};
extern /* const */ _Dconst _LSnan   = {INIT2(_DMAX << _DOFF, 1)};
extern const _Dconst _LRteps        = {INIT((_DBIAS - NBITS / 2) << _DOFF)};

extern const long double _LXbig = (NBITS + 2) * 0.347L;
